package org.iamd.hibernate.vo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

/**
 * VO за каталога на всички номенклатури в системата.
 * 
 * @author И. Атанасов
 */
@Entity
@Table(name = "nom_catalog", uniqueConstraints = { @UniqueConstraint(columnNames = "table_name"),
		@UniqueConstraint(columnNames = "nom_name") })
public class NomCatalog extends HibernateVO {

	/** Сериен номер на класа. */
	private static final long serialVersionUID = 8902038222212901918L;

	/** Описание на номенклатура. */
	private String nomName;

	/** Име на номенклатурна таблица. */
	private String tableName;

	/** Флаг, показващ дали номенклатурата може да се редактира. */
	private boolean isEditable;

	/**
	 * @see org.iamd.hibernate.vo.HibernateVO#getId()
	 */
	@Override
	@Id
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return super.getId();
	}

	/**
	 * @return описание на номенклатура
	 */
	@Column(name = "nom_name", unique = true, nullable = false, length = 100)
	public String getNomName() {
		return this.nomName;
	}

	/**
	 * @return име на номенклатурна таблица
	 */
	@Column(name = "table_name", unique = true, nullable = false, length = 50)
	public String getTableName() {
		return this.tableName;
	}

	/**
	 * @return дали номенклатурата може да се редактира
	 */
	@Column(name = "editable")
	public boolean isEditable() {
		return this.isEditable;
	}

	/**
	 * Setter за описание на номенклатура.
	 * 
	 * @param nomName
	 *            описание на номенклатура
	 */
	public void setNomName(String nomName) {
		this.nomName = nomName;
	}

	/**
	 * Setter за име на номенклатурна таблица.
	 * 
	 * @param tableName
	 *            име на номенклатурна таблица
	 */
	public void setTableName(String tableName) {
		this.tableName = tableName;
	}

	/**
	 * Setter дали номенклатурата може да се редактира.
	 * 
	 * @param isEditable
	 *            дали номенклатурата може да се редактира
	 */
	public void setEditable(boolean isEditable) {
		this.isEditable = isEditable;
	}

}